home *** CD-ROM | disk | FTP | other *** search
- /* KIVA.KB */
- /* Archaeology classification example. Performs analysis of site based on
- descriptions of artifacts found at various locations. The classification
- attempts to provide a functional description of the main finds and
- features. For example, a specific artifact might be 'a stone', and
- the archaeologist needs to determine whether that stone was actually
- used for cooking, sharpening, etc.
- To run, be sure to toggle on tracing option number 5, via
- ?- tracing(5).
- and invoke the forward chainer via
- ?- fc.
- (warning: this kb runs a bit slowly!!!)
- At the end of a run, you can use 'describe' to see the additional
- 'use' slot which has been added to several objects, and you can
- also get explanations for the way in which particular conslusions
- were obtained.
- Here is an example of how you get an explanation for the route to
- a specific conclusion about the use of artifact1:
- ?- how (the use of artifact1 is butchering).
-
- */
-
- /*
- This knowledge base for MIKE is a re-implementation of part of Jitu
- Patel's KIVA knowledge base for KEE. For full details see:
-
- Jitu Patel and Arthur Stutt
- "KIVA: an archaeological interpreter"
- In B. Kelly and A. Rector and (Eds.) , Research and Development in
- Expert Systems V. Cambridge, UK: Cambridge University Press, 1988.
-
- The domain knowledge is (loosely) derived from various accounts of
- Pueblo Indian cultures. Perhaps the most easily accessible of these is
- the following
-
- S.H.Lekson, T.C.Windes, J.R.Stein & W.J.Judge
- The Chaco Canyon Community
- Scientific American
- July 1988 Vol. 259 No. 1
- */
-
- /*
- ==========================================================
- FACT-FRAMES
- ==========================================================
-
- site_facts
- / \
- finds features
- / \ \
- / \ \
- / \ \
- artifact ecofact enclosing_feature etc.etc.
-
- */
-
- finds subclass_of site_facts with
- comment: 'objects found at the site',
- name: unknown,
- location: unknown,
- justification: 'given in Longacre',
- grounds: none.
-
- features subclass_of site_facts with
- comment: 'features of the the site',
- name: unknown,
- location: unknown,
- area: unknown,
- justification: 'given in Longacre',
- grounds: none.
-
- artifacts subclass_of finds with
- length: unknown,
- use: unknown.
-
- ecofacts subclass_of finds with
- date: unknown.
-
- e_pollen subclass_of ecofacts with
- kind: unknown.
-
- e_wood subclass_of ecofacts with
- kind: unknown.
-
- e_bone subclass_of ecofacts with
- age: unknown,
- source: unknown.
-
- a_wood subclass_of artifacts with
- kind: unknown,
- point_type: unknown.
-
- a_stone subclass_of artifacts with
- type: unknown,
- edge_shape: unknown.
-
- a_pottery subclass_of artifacts with
- base: unknown,
- colour: unknown,
- contents: unknown,
- date: unknown,
- diameter: unknown,
- fabric: unknown,
- surface: unknown,
- type: unknown.
-
- a_bone subclass_of artifacts with
- date: unknown,
- edge: unknown,
- point: unknown,
- source: unknown,
- texture: unknown,
- type: unknown.
-
- flints subclass_of a_stone with
- body: dummy.
-
- enclosing_feature subclass_of features with
- name: nil,
- border: stone,
- breadth: 20,
- length: 10,
- location: unknown,
- material: stone,
- placement: above_ground,
- radius: nil,
- shape: quadrilateral.
-
- palisade subclass_of enclosing_features with
- radius: unknown,
- height: unknown.
-
- ring subclass_of enclosing_features with
- radius: unknown.
-
- mound subclass_of features with
- name: nil,
- radius: nil.
-
- accumulation subclass_of features with
- name: nil,
- debris: flint_debitage,
- radius: nil,
- state: organized.
-
- hole subclass_of features with
- lining: nil,
- material: nil,
- placement: nil,
- radius: nil.
-
- refuse_areas subclass_of area with
- location: unknown.
-
- manufacturing_refuse subclass_of refuse_areas with
- body: dummy.
-
- primary_refuse subclass_of refuse_areas with
- body: dummy.
-
- secondary_refuse subclass_of refuse_areas with
- body: dummy.
-
- activity_area subclass_of area with
- comment: 'area where significant activity went on',
- activity: unknown,
- enclosed_objects: unknown,
- max_x: unknown,
- max_y: unknown,
- min_x: unknown,
- min_y: unknown.
-
- plaza subclass_of activity_area with
- comment: 'external work area'.
-
- living_area subclass_of activity_area with
- comment: 'living room'.
-
- kiva subclass_of activity_area with
- comment: 'religious/ritual area'.
-
- storage_area subclass_of activity_area with
- comment: 'room for storage'.
-
- /*
- ===========================================================
- FINDS
-
- {The following represents a hypothetical Pueblo site}
-
- (NB1) only artifacts have been included
- (NB2) the dimensions given are in feet
- ===========================================================
- */
-
- artifact1 instance_of a_stone with
- edge: straight,
- length: 1.4,
- location: [30,20],
- type: knife.
-
- artifact2 instance_of a_stone with
- edge: straight,
- length: 0.7,
- location:[31,20],
- type: knife.
-
- artifact3 instance_of a_stone with
- edge: straight,
- length: 3,
- location:[40,05],
- type: metate.
-
- artifact4 instance_of a_stone with
- edge: straight,
- length: 0.8,
- location:[44,06],
- type: mano.
-
- artifact5 instance_of a_stone with
- edge: convex,
- length: 0.5,
- location:[05,33],
- type: knife.
-
- artifact6 instance_of a_stone with
- edge: straight,
- length: 1,
- location:[05,05],
- type: denticulate.
-
- artifact7 instance_of a_stone with
- edge: complex,
- length: 1.2,
- location:[06,07],
- type: knife.
-
- artifact8 instance_of a_stone with
- edge: straight,
- length: 0.6,
- location:[08,06],
- type: knife.
-
- artifact9 instance_of a_stone with
- edge: complex,
- length: 1.1,
- location:[06,30],
- type: projectile_point.
-
- artifact10 instance_of a_stone with
- edge: straight,
- length: 1,
- location:[05,32],
- type: axe.
-
- artifact11 instance_of a_stone with
- edge: concave,
- length: 0.9,
- location:[33,33],
- type: notch.
-
- artifact12 instance_of a_stone with
- edge: convex,
- length: 0.3,
- location:[33,34],
- type: burin.
-
- artifact13 instance_of a_stone with
- edge: complex,
- length: 0.5,
- location:[42,45],
- type: projectile_point.
-
- artifact16 instance_of a_pottery with
- base: burned,
- colour: black_on_white,
- diameter: 1,
- fabric: fired,
- length: 1.5,
- location:[35,15],
- surface: corrugated,
- type: pot.
-
- artifact17 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 0.4,
- fabric: fired,
- length: 2,
- location:[30,18],
- surface: painted,
- type: ladle.
-
- artifact18 instance_of a_pottery with
- base: not_burned,
- colour: black_on_red,
- diameter: 1,
- fabric: fired,
- length: 1.5,
- location:[42,48],
- surface: painted,
- type: bowl.
-
- artifact19 instance_of a_pottery with
- base: not_burned,
- colour: black_on_red,
- diameter: 1,
- fabric: fired,
- length: 2,
- location:[10,32],
- surface: unpainted,
- type: jar.
-
- artifact20 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 1,
- fabric: fired,
- length: 0.5,
- location:[06,39],
- surface: painted,
- type: mug.
-
- artifact21 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 1,
- fabric: fired,
- length: 1.6,
- location:[05,37],
- surface: painted,
- type: jar.
-
-
- artifact22 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 1,
- fabric: fired,
- length: 1.5,
- location:[07,38],
- surface: painted,
- type: bowl.
-
- artifact23 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 1,
- fabric: fired,
- length: 1.5,
- location:[04,44],
- surface: painted,
- type: pot.
-
- artifact24 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 1,
- fabric: fired,
- length: 1.5,
- location:[05,42],
- surface: painted,
- type: pot.
-
- artifact25 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 0.7,
- fabric: fired,
- length: 1.5,
- location:[06,40],
- surface: painted,
- type:jar.
-
- artifact26 instance_of a_pottery with
- base: not_burned,
- colour: black_on_white,
- diameter: 0.6,
- fabric: fired,
- length: 2,
- location:[03,39],
- surface: painted,
- type: ladle.
-
-
-
-
- /*
- ===========================================================
- EXAMPLE RULES
- ===========================================================
- */
-
- /* uses of stone artifacts */
-
- rule s1 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is projectile_point &
- the length of Artifact is Len &
- prolog(Len > 1)
- then
- note the use of Artifact is digging.
-
- rule s1a forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is scraper &
- the length of Artifact is Len &
- prolog(Len > 1)
- then
- note the use of Artifact is digging.
-
- rule s2 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is projectile_point &
- the length of Artifact is Len &
- prolog(Len < 1)
- then
- note the use of Artifact is hunting.
-
- rule s3 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is denticulate
- then
- note the use of Artifact is cloth_working.
-
- rule s4 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is notch &
- the edge of Artifact is concave
- then
- note the use of Artifact is wood_working.
-
- rule s4a forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is burin &
- the edge of Artifact is concave
- then
- note the use of Artifact is wood_working.
-
- rule s5 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is notch &
- the edge of Artifact is straight
- then
- note the use of Artifact is bone_working.
-
- rule s5a forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is notch &
- the edge of Artifact is complex
- then
- note the use of Artifact is bone_working.
-
- rule s5b forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is burin &
- the edge of Artifact is straight
- then
- note the use of Artifact is bone_working.
-
- rule s5c forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is burin &
- the edge of Artifact is complex
- then
- note the use of Artifact is bone_working.
-
- rule s6 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is metate
- then
- note the use of Artifact is food_preparation.
-
- rule s6a forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is mano
- then
- note the use of Artifact is food_preparation.
-
- rule s7 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is knife &
- the length of Artifact is Len &
- prolog(Len > 1)
- then
- note the use of Artifact is butchering.
-
- rule s8 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is knife &
- the length of Artifact is Len &
- prolog(Len < 1)
- then
- note the use of Artifact is cutting.
-
- rule s9 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is scraper &
- the length of Artifact is Len &
- prolog(Len < 1)
- then
- note the use of Artifact is hide_working.
-
- rule s10 forward
- if
- Artifact instance_of a_stone &
- the type of Artifact is axe &
- the edge of Artifact is straight
- then
- note the use of Artifact is butchering.
-